﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq.SqlClient;
using BLL;

namespace DAL
{
    public class DALDonHang
    {
        //lay danh sach don hang
        public static List<BLLDonHang> GetAll()
        {
            var dhs = from dh in DALCommon.TMDTDB.DonHangs
                      select
                      new BLLDonHang(dh.IDDonHang.ToString(), dh.IDNguoiDung, dh.NgayDatHang.ToString(), dh.TongTien, dh.TrangThai);
            return dhs.ToList<BLLDonHang>();
        }
        //loc don hang
        public static List<BLLDonHang> GetByfilter(BLLDonHang donhang)
        {

            List<BLLDonHang> list = new List<BLLDonHang>();
            if (donhang.Trangthai == "0" && donhang.Ngay == "0")
            {
                var result = from dh in DALCommon.TMDTDB.DonHangs
                             select new BLLDonHang(dh.IDDonHang.ToString(), dh.IDNguoiDung, dh.NgayDatHang.ToString(), dh.TongTien, dh.TrangThai);
                list = result.ToList<BLLDonHang>();
                return list;
            }
            else
            {
                var result = from dh in DALCommon.TMDTDB.DonHangs
                             select dh;

                if (donhang.Trangthai == "1")
                {
                    result = result.Where(dh => dh.TrangThai == "Chưa liên lạc");
                }
                if (donhang.Trangthai == "2")
                {
                    result = result.Where(dh => dh.TrangThai == "Chưa giao");
                }
                if (donhang.Trangthai == "3")
                {
                    result = result.Where(dh => dh.TrangThai == "Đã giao");
                }
                if (donhang.Ngay != "0")
                {
                    result = result.Where(dh => dh.NgayDatHang >= donhang.TuNgay && dh.NgayDatHang <= donhang.DenNgay);
                }

                foreach (DonHang dh in result)
                {
                    list.Add(new BLLDonHang(dh.IDDonHang.ToString(), dh.IDNguoiDung, dh.NgayDatHang.ToString(), dh.TongTien, dh.TrangThai));
                }
                return list;
            }
        }
        //lay chi tiet don hang
        public static List<BLLDonHang> GetChiTietDH(BLLDonHang donhang)
        { 
           var dhs = from dh in DALCommon.TMDTDB.DonHangs
                select
                 new BLLDonHang(dh.IDDonHang.ToString(), dh.IDNguoiDung, dh.NgayDatHang.ToString(), dh.TongTien, dh.TrangThai);
            return dhs.ToList<BLLDonHang>();
        }
        //lay dh theo id
        public static List<BLLDonHang>GetByID(BLLDonHang donhang)
        {
            var dhs = from dh in DALCommon.TMDTDB.DonHangs
                      where dh.IDDonHang.ToString()==donhang.Iddonhang
                      select
            new BLLDonHang(dh.IDDonHang.ToString(), dh.IDNguoiDung, dh.NgayDatHang.ToString(), dh.TongTien, dh.TrangThai);
            return dhs.ToList<BLLDonHang>();
        }
        //them don hang moi
        public static string Add(BLLDonHang dh)
        {
            TMDTDataContext tmdt = new TMDTDataContext();
            DonHang d = new DonHang();
            //d.IDDonHang = dh.Iddonhang;
            d.IDNguoiDung = dh.Idnguoidung;
            d.NgayDatHang =Convert.ToDateTime(dh.Ngay);
            d.TongTien=dh.TongTien;
            d.TrangThai = dh.Trangthai;
            DALCommon.TMDTDB.DonHangs.InsertOnSubmit(d);
            try
            {
                DALCommon.TMDTDB.SubmitChanges();
            }
            catch
            { 
            
            }
            return d.IDDonHang.ToString();
        }
        //lay don hang theo nguoi dung
        public static List<BLLDonHang> GetByUser(BLLDonHang donhang)
        {
            var dhs = from dh in DALCommon.TMDTDB.DonHangs
                      where dh.IDNguoiDung == donhang.Idnguoidung
                      select
            new BLLDonHang(dh.IDDonHang.ToString(), dh.IDNguoiDung, dh.NgayDatHang.ToString(), dh.TongTien, dh.TrangThai);
            return dhs.ToList<BLLDonHang>();
        }
        //xoa don hang theo id user khi xoa user 
        public static string DeletebyUser(BLLDonHang donhang)
        {

           // DonHang dh = DALCommon.TMDTDB.DonHangs.Where(d => d.IDNguoiDung == donhang.Idnguoidung);
            var result = from dh in DALCommon.TMDTDB.DonHangs
                         where (dh.IDNguoiDung == donhang.Idnguoidung)
                         select dh;
            DALCommon.TMDTDB.DonHangs.DeleteAllOnSubmit(result);
            DALCommon.TMDTDB.SubmitChanges();
            return donhang.Iddonhang;
        }
       


    }
}
